# 定义列表，元素为字典，以国家名或运动队名为键，以奖牌数的字典为值
medal = [
    {'中国': {'金牌': 38, '银牌': 32, '铜牌': 18, '总数': 88}},
    {'俄罗斯奥委会': {'金牌': 20, '银牌': 28, '铜牌': 23, '总数': 71}},
    {'英国': {'金牌': 22, '银牌': 21, '铜牌': 22, '总数': 65}},
    {'美国': {'金牌': 39, '银牌': 41, '铜牌': 33, '总数': 113}},
    {'日本': {'金牌': 27, '银牌': 14, '铜牌': 17, '总数': 58}}
]
def ranking(base):  # 定义函数，对奖牌数进行排序
    print('*****东京奥运会前5奖牌榜（按{}排名）*****'.format(base))
    # 按降序排序
    medal.sort(key=lambda x: list(x.values())[0][base], reverse=True)
    # list(x.values())  == [{'金牌': 38, '银牌': 32, '铜牌': 18, '总数': 88}]
    i = 1
    for country in medal:  # 遍历列表
        for key, value in country.items():  # 遍历字典
            print(i, key, '金牌', value['金牌'], '银牌', value['银牌'],
                  '铜牌', value['铜牌'], '总数', value['总数'])
            # print(f'{i}.{key}:金牌{value['金牌']},总数{value['总数']}')
        i += 1


ranking('金牌')  # 按金牌数排序
ranking('总数')  # 按奖牌总数排序